This invention relates to the field of computer controlled robotics. Most existing industrial robot manipulators are serial mechanical structures/devices that resemble the human arm. In FIG. 1 are shown three examples of six-degree-of-freedom robots with spherical wrists, namely the robots conventionally called the Cincinnati T3, the Stanford arm, and the Unimation Puma 560. Robot manipulators are basically an open loop (or closed) chain of links connected to each other through joints, which are controlled by actuators. The generalized coordinates 1 (.theta..sub.1, .theta..sub.2, .theta..sub.3, .theta..sub.4, .theta..sub.5,.theta..sub.6) are called the joint coordinates and form the robot joint space. The end effector Cartesian position/orientation 2 with respect to a Cartesian space coordinate system represents the robot Cartesian space. In most robotic control strategies, the primary task is driving the joint actuators, so that the end effector follows a desired Cartesian position/orientation trajectory. In order to achieve that, a fundamental problem, which must be solved in all sophisticated computer based robot Cartesian controller design, is that robots are usually servoed in the joint space (through the actuator motors), while the robot desired tasks are best described and specified in the Cartesian space.
For instance, consider the task where the robot's end effector has to track a certain Cartesian surface when applying a certain force on it (position and force control), or the task where the robot end effector has to follow a certain Cartesian straight line (position control); we may notice that these tasks are best described in the Cartesian space and not in the joint space. The joints of the robot must move at different joint rates in order to achieve the desired end effector position/orientation Cartesian trajectory. Therefore, the inverse mapping between the Cartesian space and the joint space--i.e., given a desired Cartesian position/orientation of the end effector, then what is the set of joint coordinates that the robot must have, to achieve the desired end effector Cartesian position/orientation--, must be solved in every sophisticated computer-based robot control. This is known as the inverse kinematic problem. It is one of the most difficult problems in robotics.
A systematic and straightforward technique for computing the forward kinematics (i.e., given the joint coordinates, then determine the Cartesian position/orientation of the effector) is described in articles by Denavit and R. Hartenberg, "A kinematic motion for lower-pair mechanisms based on matrices" AME J. Appl. Mech. pp. 215-221, June 1955, and by Pieper, D. I., and B. Roth, "The kinematics of manipulators under computer control", Proc. 2nd Int. Conf. Theory of Machines and Mechanisms, Warsaw, September 1969. The forward kinematics problem is straightforward and simple. The inverse kinematics problem (IKP) is more difficult and a closed form solution is not known (may be impossible) to this day. At one time, for simple robots, the IKP was solved by man using his intuition and experience. Today, when the robots are called to perform sophisticated Cartesian tasks, intuition and experience are not enough to solve the problem. A closed form solution to the IKP exists only for a limited number of robot kinematic designs that allow a closed form solution. The IKP becomes more difficult when the robot is redundant. A robot is redundant when it has more degrees of freedom than necessary. It is well established that in the case of a redundant robot, there is an infinity of solutions to the IKP. The IKP is also even more difficult when the robot is in a singular configuration. A robot singular configuration is a configuration where the robot end effector cannot move in certain Cartesian directions. Robot singularities translate into rank deficiency in the robot jacobian matrix. The robot jacobian is a matrix which forms the linear relation between the differential changes in the Cartesian coordinates and the differential changes in the joint coordinates. This matrix is time varying and depends on the robot different joint configurations.
Many researchers in the field of robotics are still searching for effective procedures to solve the IKP for general architecture robots, in order to permit the implementation of Cartesian-based robot controllers. In the next section, the prior art best known methods of Cartesian-based robot control, as well as prior art inverse kinematic methods, are briefly described. The best prior art known methods to solve the IKP can be classified in two categories: